#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>

using namespace std;

void Usage(string proc)
{
    cout << "Usage:\n\t" << proc << " signum pid\n\n";
}

// mykill signum pid
// int main(int argc, char* argv[])
// {
//     if(argc != 3)
//     {
//         Usage(argv[0]);
//         exit(1);
//     }
//     int signum = stoi(argv[1]);
//     pid_t pid = stoi(argv[2]);

//     int n = kill(pid, signum);
//     if(n == -1)
//     {
//         perror("kill error");
//         exit(2);
//     } 

//     return 0;
// }


// int: 收到了哪一个信号
void myhandler(int signo)
{
    cout << "process get a signal: " << signo << endl;
    // exit(1);
}

int main()
{
    // signal(SIGINT, myhandler); 
    // signal(3, myhandler);
    // signal(19, myhandler);
    // 信号的产生和我们的代码的运行是异步的

    for(int i = 1; i <= 31; i++)
    {
        signal(i, myhandler);
    }

    while(true) 
    {
        cout << "I am a process" << endl; // 只需要设置一次，往后都有效
        sleep(1);
    }

    return 0;
}